『プログラミングHaskell 第2版』
https://gyazo.com/2f30c07bd295aefe16005d3aa26cc33a
2019年8月2日
失敗してるmrsekut.icon
文字飛んでるな..
目次
第I部 基礎概念
第1章 導入
1.1 関数
1.2 関数プログラミング
1.3 Haskell の特徴
1.4 歴史的背景
1.5 Haskell の妙味
1.6 参考文献
1.7 練習問題
第2章 はじめの一歩
2.1 GHC
2.2 インストールして利用開始
2.3 プレリュード
2.4 関数適用
2.5 Haskell プログラム
2.6 参考文献
2.7 練習問題
第3章 型と型クラス
3.1 基礎概念
3.2 基本型
3.3 リスト型
3.4 タプル型
3.5 関数型
3.6 カリー化された関数
3.7 多相型
3.8 多重定義型
3.9 基本クラス
3.10 参考文献
3.11 練習問題
第4章 関数定義
4.1 古きから新しきへ
4.2 条件式
4.3 ガード付きの等式
4.4 パターンマッチ
4.5 ラムダ式
4.6 セクション
4.7 参考文献
4.8 練習問題
第5章 リスト内包表記
5.1 基礎概念
5.2 ガード
5.3 関数zip
5.4 文字列の内包表記
5.5 シーザー暗号
5.6 参考文献
5.7 練習問題
第6章 再帰関数
6.1 基礎概念
6.2 リストに対する再帰
6.3 複数の引数
6.4 多重再帰
6.5 相互再帰
6.6 再帰の秘訣
6.7 参考文献
6.8 練習問題
第7章 高階関数
7.1 基礎概念
7.2 リスト処理
7.5 関数合成演算子
7.6 文字列の二進数変換器
7.7 投票アルゴリズム
7.8 参考文献
7.9 練習問題
第8章 型と型クラスの定義
8.1 type による型宣言
8.2 dataによる型宣言
8.3 newtypeによる型宣言
8.4 再帰型
8.5 型クラスとインスタンスの宣言
8.6 恒真式検査器
8.7 抽象機械
8.8 参考文献
8.9 練習問題
第9章 カウントダウン問題
9.1 導入
9.2 算術演算子
9.3 数式
9.4 組み合わせ関数
9.5 問題の形式化
9.6 総当たり法
9.7 性能テスト
9.8 生成と評価の方法を変える
9.9 代数的な性質をいかす
9.10 参考文献
9.11 練習問題
第II部 高度な話題
第10章 対話プログラム
10.1 課題
10.2 解決策
10.3 基本アクション
10.4 順序付け
10.5 アクションの部品
10.6 ハングマン
10.7 ニム
10.8 ライフ
10.9 参考文献
10.10 練習問題
第11章 負けない三目並べ
11.1 導入
11.2 基本的な宣言
11.3 格子に関する便利な関数
11.4 格子を表示する
11.5 手を決める
11.6 番号を読み込む
11.7 人間 vs 人間
11.8 ゲームの木
11.9 枝を刈る
11.10 ミニマックス法
11.11 人間 vs コンピューター
11.12 参考文献
11.13 練習問題
第12章 モナドなど
12.1 関手
12.2 アプリカティブ
12.3 モナド
12.4 参考文献
12.5 練習問題
第13章 モナドパーサー
13.1 パーサーとは何か?
13.2 関数としてのパーサー
13.3 基礎的な定義
13.4 パーサーの連接
13.5 選択
13.6 派生関数
13.7 空白の扱い
13.8 数式
13.9 計算器
13.10 参考文献
13.11 練習問題
14.1 モノイド
14.2 Foldable
14.3 Traversable
14.4 参考文献
14.5 練習問題
15.1 導入
15.2 評価戦略
15.3 停止性
15.4 簡約の回数
15.5 無限のデータ構造
15.6 部品プログラミング
15.7 正格適用
15.8 参考文献
15.9 練習問題
第16章 プログラムの論証
ここがおもしろそうmrsekut.icon*3
16.1 等式変形
16.2 Haskell の等式推論
16.3 簡単な例題
16.4 自然数に対する数学的帰納法
16.5 リストに対する構造的帰納法
16.6 連結を除去する
16.7 コンパイラーの正しさ
16.8 参考文献
16.9 練習問題
第17章 コンパイラーの算出
17.1 導入
17.2 文法と意味
17.3 スタックの追加
17.4 継続の追加
17.5 脱高階関数
17.6 算出の短縮
17.7 参考文献
17.8 練習問題
付録A 解答の一部
付録B 標準的なモジュール
参考文献
索引